home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 2
/
AACD 2.iso
/
AACD
/
Magazine
/
ActiveShareware
/
PureBasic_Demo
/
Compilers
/
Extras_ppcmacros.pasm
< prev
next >
Wrap
Text File
|
1999-09-12
|
6KB
|
174 lines
#
# WarpOS PowerPC.library support for pasm
#
# Convertion by AlphaSOUND - Fantaisie Software
#
.ifndef ALPHASND_USEFULSTUFFS_I
.set ALPHASND_USEFULSTUFFS_I,1
.set _LVORun68K , -300
.set _LVOWaitFor68K , -306
.set _LVOSPrintF , -312
.set _LVORun68KLowLevel , -318 #PRIVATE!
.set _LVOAllocVecPPC , -324
.set _LVOFreeVecPPC , -330
.set _LVOCreateTaskPPC , -336
.set _LVODeleteTaskPPC , -342
.set _LVOFindTaskPPC , -348
.set _LVOInitSemaphorePPC , -354
.set _LVOFreeSemaphorePPC , -360
.set _LVOAddSemaphorePPC , -366
.set _LVORemSemaphorePPC , -372
.set _LVOObtainSemaphorePPC , -378
.set _LVOAttemptSemaphorePPC , -384
.set _LVOReleaseSemaphorePPC , -390
.set _LVOFindSemaphorePPC , -396
.set _LVOInsertPPC , -402
.set _LVOAddHeadPPC , -408
.set _LVOAddTailPPC , -414
.set _LVORemovePPC , -420
.set _LVORemHeadPPC , -426
.set _LVORemTailPPC , -432
.set _LVOEnqueuePPC , -438
.set _LVOFindNamePPC , -444
.set _LVOFindTagItemPPC , -450
.set _LVOGetTagDataPPC , -456
.set _LVONextTagItemPPC , -462
.set _LVOAllocSignalPPC , -468
.set _LVOFreeSignalPPC , -474
.set _LVOSetSignalPPC , -480
.set _LVOSignalPPC , -486
.set _LVOWaitPPC , -492
.set _LVOSetTaskPriPPC , -498
.set _LVOSignal68K , -504
.set _LVOSetCache , -510
.set _LVOSetExcHandler , -516
.set _LVORemExcHandler , -522
.set _LVOSuper , -528
.set _LVOUser , -534
.set _LVOSetHardware , -540
.set _LVOModifyFPExc , -546
.set _LVOWaitTime , -552
.set _LVOChangeStack , -558 # PRIVATE!
.set _LVOLockTaskList , -564
.set _LVOUnLockTaskList , -570
.set _LVOSetExcMMU , -576
.set _LVOClearExcMMU , -582
.set _LVOChangeMMU , -588
.set _LVOGetInfo , -594
.set _LVOCreateMsgPortPPC , -600
.set _LVODeleteMsgPortPPC , -606
.set _LVOAddPortPPC , -612
.set _LVORemPortPPC , -618
.set _LVOFindPortPPC , -624
.set _LVOWaitPortPPC , -630
.set _LVOPutMsgPPC , -636
.set _LVOGetMsgPPC , -642
.set _LVOReplyMsgPPC , -648
.set _LVOFreeAllMem , -654
.set _LVOCopyMemPPC , -660
.set _LVOAllocXMsgPPC , -666
.set _LVOFreeXMsgPPC , -672
.set _LVOPutXMsgPPC , -678
.set _LVOGetSysTimePPC , -684
.set _LVOAddTimePPC , -690
.set _LVOSubTimePPC , -696
.set _LVOCmpTimePPC , -702
.set _LVOSetReplyPortPPC , -708
.set _LVOSnoopTask , -714
.set _LVOEndSnoopTask , -720
.set _LVOGetHALInfo , -726
.set _LVOSetScheduling , -732
.set _LVOFindTaskByID , -738
.set _LVOSetNiceValue , -744
.set _LVOTrySemaphorePPC , -750
.set _LVOAllocPrivateMem , -756 # PRIVATE!
.set _LVOFreePrivateMem , -762 # PRIVATE!
.set _LVOResetCPU , -768 # PRIVATE!
.set _LVONewListPPC , -774
.set _LVOSetExceptPPC , -780
.set _LVOObtainSemaphoreSharedPPC , -786
.set _LVOAttemptSemaphoreSharedPPC, -792
.set _LVOProcurePPC , -798
.set _LVOVacatePPC , -804
.set _LVOCauseInterrupt , -810
.set _LVOCreatePoolPPC , -816
.set _LVODeletePoolPPC , -822
.set _LVOAllocPooledPPC , -828
.set _LVOFreePooledPPC , -834
.set _LVORawDoFmtPPC , -840
# Useful constants for PPC calls.
#
.set PP_CODE , 0 # Ptr to PPC code
.set PP_OFFSET , 4 # Offset to PP_CODE
.set PP_FLAGS , 8 # flags (see below)
.set PP_STACKPTR , 12 # stack pointer
.set PP_STACKSIZE , 16 # stack size
.set PP_REGS , 20 # 15 registers (d0-a6) - 15*4
.set PP_FREGS , 80 # 8 registers (fp0-fp7) - 8*8
.set PP_SIZE ,176 # Theorically 144, but vbcc use 176 so..
# CallPowerPC - PowerPC.library automatic function call.
#
# Usage: 'CALLPOWERPC AllocMemPPC'
#
.macro CALLPOWERPC
lwz r3,_PowerPCBase(r2)
lwz r0,_LVO\1+2(r3)
mtlr r0
blrl
.endm
# Run68k - Allow launching of regular 68000 sub functions.
#
# Usage: 'RUN68K r5,-198'
#
.macro RUN68K
push _a6
subi local,local,PP_SIZE
stw _d0,PP_REGS(local)
stw _d1,PP_REGS+1*4(local)
stw _d2,PP_REGS+2*4(local)
stw _d3,PP_REGS+3*4(local)
stw _d4,PP_REGS+4*4(local)
stw _d5,PP_REGS+5*4(local)
stw _d6,PP_REGS+6*4(local)
stw _d7,PP_REGS+7*4(local)
stw _a0,PP_REGS+8*4(local)
stw _a1,PP_REGS+9*4(local)
stw _a2,PP_REGS+10*4(local)
stw _a3,PP_REGS+11*4(local)
stw _a4,PP_REGS+12*4(local)
stw _a5,PP_REGS+13*4(local)
stw _a6,PP_REGS+14*4(local)
stw \1,PP_CODE(local) # Set the default base...
li _d0,\2 # ... and it's offset (ie: -526(a6))
stw _d0,PP_OFFSET(local)
clrw _d0 # We don't use them, so clear them.
stw _d0,PP_FLAGS(local) #
stw _d0,PP_STACKPTR(local) #
stw _d0,PP_STACKSIZE(local) #
mr r4,local
lwz r3,_PowerPCBase(r2)
lwz r0,-300+2(r3) # Run68K(r3, r4) - BasePtr, PPArgs
mtlr r0
blrl
lwz _d0,PP_REGS(local) # We only need 'd0'
addi local,local,PP_SIZE
pop _a6
.endm
.endif